Local voicemail for mobile devices

ABSTRACT

This document describes various techniques for implementing local voicemail on a mobile device. These techniques may include enabling the mobile device to answer a voice call, record audio of the voice call to provide a voicemail file, and store the voicemail file to local computer-readable media. A locally stored voicemail file may be associated with relevant data, exposed via the associated data for local processing, and/or manipulated through a user interface of the mobile device.

BACKGROUND

Network-based voicemail systems often limit a user's ability to access,store, and manage voicemail from a mobile device. Storing voicemail on anetwork limits access to voicemail based on network availability,restricts the amount of voicemail that can be stored, and provides fewoptions for archiving voicemail. Additionally, voice-driven menu systemstypically employed by network-based voicemail systems are cumbersome,making retrieval, navigation, and management of voicemail difficult andtime consuming.

SUMMARY

This document describes various techniques for implementing localvoicemail on a mobile device, such as by enabling the mobile device toanswer a voice call, record audio of the voice call to provide avoicemail file, and store the voicemail file to local computer-readablemedia. A locally stored voicemail file may be associated with relevantdata, exposed via the associated data for local processing, and/ormanipulated through a user interface of the mobile device.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key or essentialfeatures of the claimed subject matter, nor is it intended to be used asan aid in determining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference number in different instances in thedescription and the figures may indicate similar or identical items.

FIG. 1 illustrates an example environment in which techniques for localvoicemail are implemented.

FIG. 2 illustrates an example of the mobile device of FIG. 1.

FIG. 3 is a flow diagram depicting an example process for recordingaudio of a voice call to provide a voicemail file.

FIG. 4 is a flow diagram depicting an example process for implementinglocal voicemail at a mobile device.

FIG. 5 is a flow diagram depicting an example process exposing avoicemail file via associated data.

DETAILED DESCRIPTION Overview

This document describes various techniques for implementing localvoicemail on a mobile device. In some embodiments, these techniquesenable the mobile device to answer a voice call, record audio of thevoice call to provide a voicemail file, and store the voicemail file tolocal computer-readable media. Relevant data accessible to the mobiledevice may be associated with the stored voicemail file. The storedvoicemail file may be exposed via the associated data for localprocessing and/or manipulation through a user interface of the mobiledevice. In some embodiments a decision to answer the voice call is basedon information accessible to the mobile device. In other embodiments,answering the voice call is responsive to input received from a user ofthe mobile device. Various embodiments of these techniques result inlocally stored voicemail files, which enable a user to efficientlyaccess, navigate, and manage the voicemail files at a mobile devicewithout accessing a network.

Example Environment

FIG. 1 is an illustration of an example environment 100 in whichtechniques for local voicemail are implemented. Environment 100 includesa mobile device 102, a calling entity 104, and a wireless network 106through which mobile device 102 may make and/or receive voice calls.Generally, mobile device 102 receives voice calls from calling entity104 through wireless network 106.

Mobile device 102 can be any device capable of receiving voice callsover a wireless network (e.g., wireless network 106), recording audio ofvoice calls, and storing audio to local computer-readable media. In thepresent example, mobile device 102 is illustrated as a smart-phone.While not shown, mobile device 102 may comprise other devices, such as acellular phone, a cordless phone, a wireless Voice-over-IP phone, or avoice-capable personal media device, to name a few. Calling entity 104may comprise any entity capable of initiating a voice call andcommunicating audibly over the voice call.

Wireless network 106 may include any suitable network such as a cellularnetwork, a wireless local-area network, a wireless wide-area network,and/or a short range wireless-network, to name a few. Additionally, inat least some instances, wireless network 106 may be managed by acommunication service provider, such as a cellular service provider,Internet service provider, and/or Voice-over-IP provider in order tofacilitate voice communication for any type of wireless mobile device ormobile phone. In instances where a communication service providermanages a wireless network, the communication service provider mayimplement a network-based voicemail system.

FIG. 2 illustrates a detailed example of mobile device 102 of FIG. 1.Mobile device 102 includes processor(s) 202, computer-readable media(CRM) 204, audio interface 206, and wireless network interface 208.Computer-readable media 204 contains voicemail engine 210 and storagemedia 212. How voicemail engine 210 is implemented and used varies, andis described as part of the processes discussed below. Storage media 212includes internal and/or external (but local) memory and is capable ofstoring data. Audio interface 206 includes microphone(s) 214 capable ofcapturing audio and speaker(s) 216 capable of generating audible output.Audio interface 206 may be implemented natively on mobile device 102and/or via any wired or wireless audio device such as wirelesspersonal-area-network ear piece.

Generally, any of the techniques and abilities described herein can beimplemented using software, firmware, hardware (e.g., fixed-logiccircuitry), manual processing, or any suitable combination of theseimplementations. The example mobile device 102 generally representssoftware, firmware, hardware or any combination thereof. In the case ofa software implementation, for instance, voicemail engine 210 representscomputer-executable instructions (e.g., program code) that performspecific tasks when executed on a processor (e.g., CPU or CPUs). Theprogram code can be stored in one or more computer-readable memorydevices, such as computer-readable media 204 (e.g. storage media 212).The features and techniques described herein are platform-independent,meaning that they may be implemented on a variety of commercialcomputing platforms having a variety of processors.

Example Processes

The following discussion describes techniques for implementing localvoicemail on a mobile device. Generally, these techniques enable amobile device to answer a voice call, record audio of the voice call toprovide a voicemail file, and store the voicemail file to localcomputer-readable media. For example, mobile device 102 answers a voicecall from calling entity 104 received through wireless network 106,records audio of the voice call to provide a voicemail file, and storesthe voicemail file to local computer-readable media. In someembodiments, relevant data may be associated with a local voicemailfile, the voicemail file may be exposed via the associated data forlocal processing and/or the voicemail file may be manipulated by a userinterface of a mobile device.

Aspects of these processes may be implemented in hardware, firmware,software, or a combination thereof. These processes are shown as sets ofblocks that specify operations performed, such as through one or moreentities or devices, and are not necessarily limited to the order shownfor performing the operations by the respective blocks. In portions ofthe following discussion reference may be made to environment 100 ofFIG. 1 as well as example entities of environment 100 illustrated inFIG. 2.

FIG. 3 is a flow diagram depicting an example process 300 for recordinga voice call to provide a voicemail file. Block 302 answers a voice callat a mobile device. In some cases, answering the voice call isresponsive to user input received at the mobile device. For instance,block 302 may answer the voice call responsive to user input indicatingthe voice call should be sent to local voicemail. Optionally, a decisionat block 302 to answer the call may be based on information accessibleto the mobile device. Examples of information accessible to the mobiledevice include schedule, calendar, contact, and mobile device location,to name a few.

In some cases a microphone of the mobile device is disabled preventingunintentional transmissions of sound and/or ambient noise over the voicecall. Optionally, an audio message may be played from local storage ofthe mobile device over the voice call. For instance, the audio messagemay be a default voicemail greeting or a custom voicemail greetingrecorded by a user of the mobile device.

By way of example, consider process 300 in the context of environment100. Voicemail engine 210 answers, at block 302, a voice call receivedfrom calling entity 104 through wireless network 106. Here assume thatmobile device 102 has access to calendar information which indicates auser of mobile device 102 has a meeting scheduled at the time of thevoice call. Continuing the present example, voicemail engine 210 decidesto answer the voice call based on calendar information.

Also assume that a default voicemail greeting is stored on storage media212 of mobile device 102. In the present example, voicemail engine 210disables microphone 214 of mobile device 102 and plays the customvoicemail greeting from media storage 212 over the voice call to callingentity 104.

Block 304 records audio of the voice call to provide a voice mail file.In some cases recording begins after an audio message is played fromlocal storage over the voice call. Recording of audio at block 304 maycease responsive to the voice call ending, a recording length timeout,or an audio recording cache limit. For instance, the audio recordingcache limit may be based on available capacity of local storage media.

Continuing the ongoing example, voicemail engine 210 records audio ofthe voice call after the custom voicemail greeting has been played fromstorage media 212 over the voice call. Here assume that calling entity104 leaves a message for the user of mobile device 102 and hangs up,ending the voice call. For the ongoing example, voicemail engine recordsthe message from calling entity 104 until the end of the voice call,providing a voicemail file of the message from calling entity 104.

Block 306 stores the voicemail file locally on the mobile device. Insome cases, details about the voice call may be associated with thevoicemail file, such as a time of the voice call, duration of the audiorecorded from the voice call, and/or a telephone number from which thevoice call originated. Optionally, relevant data accessible to themobile device may be associated with the stored voicemail file. Examplesof relevant data include contact data, calendar data, tasks, images,call history data, short-message-service (SMS) messages,multimedia-message-service (MMS) messages, and email to name a few. Forinstance, contact information may be associated with a voicemail filebased on associated details such as a phone number.

In some cases, the voicemail file may be exposed via the associated datafor local processing. A synchronization application of the mobile devicemay be configured to synchronize voicemail files from a particularcontact to an Internet-based or cloud-based user account for archivingand/or online management. In other instances, a calendar application maybe configured to associate voicemail files received from attendees of anevent with the event in the calendar application.

Continuing with the ongoing example, voicemail engine 210 stores thevoicemail file of the message from calling entity 104 to storage media212 of mobile device 102. Here assume mobile device 102 has access tocontact data relating to calling entity 104 including a name, address,phone number, email address, and an image. In the context of the currentexample, voicemail engine 210 associates contact data relating tocalling entity 104 with the voicemail file. The voicemail file may thenbe exposed through the contact data relating to calling entity 104 foruse in other applications, syncing, archiving, and/or manipulation by auser interface of mobile device 102. Concluding the above example, avoicemail alert is displayed on device 102 including the name and imageassociated with calling entity 104 enabling user interaction with thevoicemail file.

FIG. 4 is a flow diagram depicting an example process 400 forimplementing local voice mail on a mobile device. Block 402 receives avoice call, at a mobile device, from a remote entity. By way of example,consider process 400 in the context of environment 100. Here mobiledevice 102 receives a voice call from calling entity 104 throughwireless network 106.

Block 404 answers the voice call from the remote entity. In some casesanswering is responsive to a setting of the mobile device. Settingsrelated to answering the voice call may be default, pre-defined, set bya user, determined from information accessible to the mobile device, orany combination thereof. For instance, block 404 may answer the voicecall after a pre-defined number of rings in accordance with a defaultsetting of the mobile device. In other instances, block 404 may answerthe voice call immediately when a ring volume setting of the mobiledevice is set to a particular ring level, such as silent, or ring type,such as vibration.

Optionally, settings may be determined based on information accessibleto the mobile device. Examples of information used in determiningsettings may include calendar, contact, schedule, and locationinformation to name a few. For instance, block 404 may answer the voicecall immediately in accordance with a location setting determined frominformation indicating the mobile device is proximate a movie theater.

In other cases, block 404 may answer the voice call responsive to userinput received at the mobile device. For instance, block 404 may answerthe call responsive to user input directing the received voice call tolocal voicemail. In some cases, options may be presented on a userinterface of the mobile device allowing the user to answer the voicecall, direct the call to network based voicemail, direct the voice callto local voicemail, or listen as the voice call is recorded locally asdiscussed below.

Continuing the present example, voicemail engine 210 answers the voicecall received from calling entity 104. Here assume that voicemail engine210 answers the voice call responsive to user input received at mobiledevice 102. Also assume that a user of mobile device 102 has chosen tolisten to the voice call from remote entity 104 as the voice call isrecorded locally.

Block 406 mutes the microphone of the mobile device preventing ambientnoise from being transmitted over the voice call. In some cases, a wiredor wireless headset associated with the mobile device may also be muted.In the context of the present example, block 406 mutes microphone(s) 214of mobile device 102.

Block 408 plays an audio message from local storage to the remote callerover the voice call. In some cases the audio message in local storagemay be a default voicemail greeting. In other cases the audio messagemay include a custom voicemail message created by the user of the mobiledevice saved to local storage. Optionally, local storage may include aplurality of default and/or custom voicemail greetings, played to aremote entity based on information accessible to the mobile device aboutthe remote entity. For instance, block 408 may play a custombusiness-oriented voicemail greeting to the calling entity based oncontact information indicating the calling entity is business related.

Continuing the current example, voicemail engine 210 plays an audiomessage from storage media 212 to calling entity 104 over the voicecall. Here assume that storage media 212 contains several custombusiness-oriented voicemail greetings for both customers and co-workersof the user of mobile device 102. Also assume that calling entity 104 isa co-worker of the user of mobile device 102, and that mobile device 102has access to contact data relating to calling entity 104. In thecontext of the current example, voicemail engine 210 plays theappropriate custom voicemail greeting from storage media 212 over thevoice call to calling entity 104 based on the related contact data.

Block 410 records audio of the voice call to provide a voicemail file.Recording of audio at block 304 may cease responsive to the voice callending, a recording length timeout, or an audio recording cache limit.Optionally, audio of the voice call may be played over a speaker of themobile device while block 410 records. For example, playing audio of thevoice call over a speaker of the mobile device enables a user to screencalls at the mobile device. In some cases the user may mark thevoicemail file provided by block 410 for deletion having alreadylistened to the voice call. In other cases, the user may cease process400 to take the voice call from the calling entity.

Continuing the present example, voicemail engine 210 records audio ofthe voice call to provide a voicemail file. As noted above in thepresent example, the user of the mobile device chose to listen to thevoice call as voicemail engine 210 recorded. Here assume that callingentity 104 leaves a message for the user of mobile device 102 and hangsup, ending the call. While recording, voicemail engine 210 plays audioof the voice call over speaker(s) 216 of mobile device 102 allowing theuser of mobile device 102 to listen to the message being left by callingentity 104.

Block 412 stores the voicemail file on the mobile device. Once stored onthe mobile device, the voicemail file may be readily accessed withoutnetwork connectivity. In some cases, the stored voicemail file may besynchronized or sent to Internet-based or cloud-based storage enablingthe voicemail file to be accessed from any Internet-connected computingdevice. For example, a stored voicemail may be synchronized to acloud-based user account which a user could then access from any interneconnected PC to manage, edit, tag, and/or use the voicemail file for anysuitable purpose.

Optionally, relevant data accessible to the mobile device may beassociated with the stored voicemail file. Examples of relevant datainclude contact data, social-network data, messaging-application data,pictures, video clips, other voicemail files, and synchronization datato name a few. In some cases, relevant data may be entered by the userof mobile device 102 for association with a voicemail file. Forinstance, the user may enter relevant data, such as updated contactinformation, for association with the voicemail file after listening tothe voicemail file.

In some cases, the voicemail file may be exposed via associated data forlocal processing. For instance, an email application of the mobiledevice may be configured to email voicemail files from a particularcontact to another contact as part of a voicemail forwardingconfiguration or out-of-office scheme. In other instances, a taskmanagement application may be configured to associate voicemail filesreceived from particular contacts with tasks relating to thoseparticular contacts.

Continuing the current example, voicemail engine 210 stores thevoicemail file to storage media 212 of mobile device 102. As notedabove, mobile device 102 has access to contact data relating to callingentity 104, allowing voicemail engine 210 to associate contact datarelating to calling entity 104 with the voicemail file and to expose thevoicemail file via the associated data. Here assume that the user ofmobile device 102 searches for past call and messaging interactions withcalling entity 104 via a user interface of mobile device 102. Concludingthe present example, the stored voicemail file, exposed to by theassociated data, is presented by contact name and associated image tothe user of device 102 for any suitable interaction.

FIG. 5 is a flow diagram depicting an example process 500 for exposing alocal voicemail file. Block 502 associates relevant data with voice mailfile stored on a mobile device. In some cases, relevant data may bestored locally on the mobile device. In other cases, relevant data maybe downloaded through a wireless network and/or entered by a user of themobile device. Examples of relevant data include contact information,schedule events, calendar information, call history, metadata, audiofile tags, and/or emails to name a few. It is to be appreciated andunderstood, however, that data other than the examples provided may beutilized in connection with the principles described herein.

Block 504 exposes the voicemail file via the associated data enablingthe voicemail file to be utilized through the associated data. In somecases, a voicemail file may be managed by aspects of the associateddata. For example, voicemail files may be searched for, sorted,filtered, and/or navigated by any aspect exposed by the associated data.In other cases, applications of the mobile device may utilize voicemailfiles through the associated data. For example, voicemail files may beuploaded, synchronized, forwarded, attached to calendar events, emailed,sent as MMS messages, and/or imported into applications based on exposedaspects of the voicemail files.

CONCLUSION

This document describes various techniques for local voicemail at amobile device. These techniques can enable a mobile device to answer avoice call, record audio of the voice call to provide a voicemail file,and store the voicemail file on the mobile device. In some embodiments amicrophone of the mobile device may be muted and/or an audio file may beplayed over the voice call. In other embodiments, relevant data may beassociated with the voicemail file enabling aspects of the voicemailfile to be exposed. Although the invention has been described inlanguage specific to structural features and/or methodological acts, itis to be understood that the invention defined in the appended claims isnot necessarily limited to the specific features or acts described.Rather, the specific features and acts are disclosed as example forms ofimplementing the claimed invention.

What is claimed is:
 1. A method comprising: answering, at a mobiledevice, a voice call; recording, at the mobile device, audio of thevoice call to provide a voicemail file; storing the voicemail filelocally on the mobile device; and enabling, via the mobile device, thelocally stored voicemail file on the mobile device to be available to anapplication other than a voicemail application.
 2. The method as recitedin claim 1, further comprising playing an audio message over the voicecall, the audio message stored locally on the mobile device.
 3. Themethod as recited in claim 1, further comprising disabling a microphoneof the mobile device.
 4. The method as recited in claim 1, whereinanswering the voice call is responsive to user input received at themobile device.
 5. The method as recited in claim 1, further comprisingdetermining, based on information accessible to the mobile device, toanswer the voice call.
 6. The method as recited in claim 1, furthercomprising associating relevant data with the voicemail file.
 7. Themethod of claim 6, further comprising exposing the voicemail file viathe associated data for local processing.
 8. A method comprising:receiving, at a mobile device, a voice call from a remote entity;answering the voice call; muting a microphone of the mobile device;playing an audio message to the remote entity over the voice call;recording audio of the voice call to provide a voicemail file; storingthe voicemail file on the mobile device; and enabling, via the mobiledevice, the stored voicemail file on the mobile device to be availableto an application other than a voicemail application.
 9. The method asrecited in claim 8, wherein answering the voice call is responsive to asetting of the mobile device.
 10. The method of as recited in claim 9,further comprising prior to the act of answering the voice calldetermining the setting of the mobile device based on informationaccessible to the mobile device.
 11. The method as recited in claim 10,wherein the information accessible to the mobile device includes atleast one of calendar information, schedule information, contactinformation, or information about a location of the mobile device. 12.The method as recited in claim 8, further comprising selecting one of aplurality of audio messages based on information associated with theremote entity.
 13. The method as recited in claim 8, further comprisingassociating, with the voicemail file, relevant information accessible tothe mobile device including at least one of contact information,calendar information, schedule information, or call history information.14. The method as recited in claim 13, further comprising exposing thevoicemail file via the associated information enabling user interactionwith the voicemail file based on the associated data.
 15. A mobiledevice comprising: a wireless network interface; computer-readablestorage media; a microphone; and a voicemail engine configured to:answer a voice call received via the wireless network interface; mutethe microphone of the mobile device; play an audio message from thecomputer-readable media on the voice call; record audio from the voicecall to provide a voicemail file; store the voicemail file to thecomputer-readable storage media; and enable the stored voicemail file tobe available to an application other than a voicemail applicationwithout accessing a network.
 16. The mobile device of claim 15, whereinthe voicemail engine is further configured to determine whether toanswer the incoming voice call based on information accessible to themobile device.
 17. The mobile device of claim 15, further comprising aspeaker, wherein the voicemail engine is further configured to playaudio of the voice call over the speaker.
 18. The mobile device of claim15, wherein the voicemail engine is further configured to associaterelevant data with the voicemail file.
 19. The mobile device of claim18, wherein the voicemail engine is further configured to expose thevoicemail file via the associated data.
 20. The mobile device of claim15, wherein the mobile device comprises one of a cellular phone, avoice-over-internet-protocol phone, or a voice-enabled personal mediadevice.
 21. The method as recited in claim 1, further comprisingassociating the voicemail file with a task based, at least in part, on acontact associated with the voicemail file.
 22. The method as recited inclaim 6, enabling searching, sorting, filtering or navigating thevoicemail file via the associated data.